package be.nabu.vfs.provider.api;

import java.io.IOException;
import java.net.URI;
import java.security.Principal;

/**
 * The store is a configurable root for a resource hierarchy. The hierarchy only has one goal: allow access to data. 
 * All other considerations (ACLs, transformations,..) are relegated to a higher level.
 * 
 * The store may be nested in another store which is why we have the additional setters.
 * The configuration must be expressed in a URI whilst security is handled by a generic principal.
 * Note that depending on the store implementation, you may need particular principals.
 */
public interface Store extends Listable {
	public void load(URI uri, Principal principal) throws IOException;
	public void setParent(Listable parent);
	public void setName(String name);
}
